package com.weichen.studentgameexchange.strategy.entity.vo;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.weichen.studentgameexchange.common.enums.StrategyStatus;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.time.LocalDateTime;

/**
 * 功能：
 * 作者：惟尘
 * 日期：2025/2/22 23:41
 */
@Getter
@Setter
@ToString
@Schema(name = "StrategyVo对象", description = "查看攻略详情页面效果实体")
public class StrategyVo {

    /**
     * 攻略ID，主键，唯一标识一条攻略
     */
    @Schema(description = "攻略ID，主键，唯一标识一条攻略")
    private Long strategyId;

    /**
     * 游戏id
     */
    @Schema(description = "游戏id")
    private Long gameId;
    @Schema(description = "游戏图片URL，指向游戏的封面图片")
    private String gamePicture;
    /**
     * 用户ID，关联用户信息表，表示发布攻略的用户
     */
    @Schema(description = "用户ID，关联用户信息表，表示发布攻略的用户")
    private Long userId;
    @Schema(defaultValue = "昵称")
    private String username;
    @Schema(defaultValue = "头像")
    private String avatar;
    /**
     * 攻略内容
     */
    @Schema(description = "攻略内容")
    private String content;

    /**
     * 攻略标题，攻略的标题
     */
    @Schema(description = "攻略标题，攻略的标题")
    private String title;

    /**
     * 审核状态
     */
    @Schema(description = "审核状态")
    private StrategyStatus status;

    /**
     * 发布时间，记录攻略发布的时间
     */
    @Schema(description = "发布时间，记录攻略发布的时间")
    private LocalDateTime publishTime;

    /**
     * 查看次数，记录攻略被查看的次数
     */
    @Schema(description = "查看次数，记录攻略被查看的次数")
    private Integer viewCount;

    /**
     * 记录攻略被点赞的次数
     */
    @Schema(description = "记录攻略被点赞的次数")
    private Integer likeCount;

    /**
     * 更新时间
     */
    @Schema(description = "更新时间")
    private LocalDateTime updateTime;

    /**
     * 记录攻略被收藏的次数
     */
    @Schema(description = "记录攻略被收藏的次数")
    private Integer collectionCount;

    /**
     * 记录攻略被举报的次数
     */
    @Schema(description = "记录攻略被举报的次数")
    private Integer reportCount;

}
